//============================================================================================
/**
 * @file	scrcmd_def.h
 * @brief	スクリプトコマンド用関数ツールのヘッダ
 * @author	tamada GAME FREAK inc.
 * @date	06.05.22
 *
 */
//============================================================================================
#ifndef __SCRCMD_DEF_H__
#define __SCRCMD_DEF_H__


//============================================================================================
//
//		スクリプトコマンドを使用するのに必要なインライン関数定義
//
//============================================================================================
//-----------------------------------------------------------------------------
/**
 * @brief	インライン関数：ワークを取得する
 * @param	core	仮想マシン制御ワークへのポインタ
 * @return	u16 *	ワークへのポインタ
 *
 * 次の2バイトをワークを指定するIDとみなして、ワークへのポインタを取得する
 */
//-----------------------------------------------------------------------------
static inline u16 * VMGetWork(VM_MACHINE *core)
{
	return GetEventWorkAdrs( core->fsys, VMGetU16(core) );
}

//-----------------------------------------------------------------------------
/**
 * @brief	インライン関数：ワークから値を取得する
 * @param	core	仮想マシン制御ワークへのポインタ
 * @return	u16		値
 *
 * 次の2バイトがSVWK_START（0x4000以下）であれば値として受け取る。
 * それ以上の場合はワークを指定するIDとみなして、そのワークから値を取得する
 */
//-----------------------------------------------------------------------------
static inline u16 VMGetWorkValue(VM_MACHINE * core)
{
	return GetEventWorkValue( core->fsys, VMGetU16(core) );
}

//============================================================================================
//	extern宣言
//============================================================================================


#endif	/* __SCRCMD_DEF_H__ */

